package info;

import java.io.Serializable;
import java.util.ArrayList;

import timetables.ExamTable;

public class Course implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 7910176949392165877L;

	// Class variables
	// 과목명
	private String name;

	// 과목코드
	private String id;
	private String day;			// 요일
	private String startDate;	// 시작 시간
	private String endDate;		// 끝나는 시간

	// 담당교수
	private String professor;

	// 강의실
	private LectureRoom lRoom;

	// 학생수
	private int numberOfStudents;

	// 수업여부
	private boolean classOrTest;

	// 학생 개개인의 시간표
	private boolean[][] studentTable = new boolean[26][5];
	private int numOfUpdateTable = 0;
	private boolean complete = false;

	public String[] examTime = new String[5];

	// Constructor
	public Course(String nme, String ID, String Day, String StartDate, String EndDate, String prof, String num_student, LectureRoom Room)
	{
		name = nme;
		id=ID;
		day=Day;
		startDate=StartDate;
		endDate=EndDate;
		classOrTest = true;
		lRoom = Room;

		professor = prof;
		numberOfStudents = Integer.parseInt(num_student);
	}

	// 과목명 얻기
	public String getName()
	{
		return name;
	}

	// 담당교수 정보 얻기
	public String getProfessor()
	{
		return professor;
	}

	// 수강 학생 수 정보 얻기
	public int getNum_Students()
	{
		return numberOfStudents;
	}

	// 과목코드 정보 얻기
	public String getID()
	{
		return id;
	}

	// 수업 여부 체크
	public void setClass(boolean bCOT)
	{
		classOrTest = bCOT;
	}


	public boolean[][] getStudentTable(){
		return studentTable;
	}

	public void setStudentTable(boolean[][] inTable){
		studentTable = inTable;
	}

	public void updateStudentTable(boolean[][] sTable){
		for(int i=0;i<26;i++){
			for(int j=0;j<5;j++){
				System.out.println("old: " + studentTable[i][j] + ",  input: " + sTable[i][j]);
				studentTable[i][j] = studentTable[i][j] || sTable[i][j];
				System.out.println("new:" + studentTable[i][j]);
			}
		}
		numOfUpdateTable++;
		if(numOfUpdateTable >= numberOfStudents){
			complete = true;
			System.out.println("Complete input examTime");
		}
	}

	public boolean getComplete(){
		return complete;
	}
}
